La herramienta ha sido diseñada para poder ser utilizada con distintos lenguajes de resolución de restricciones. En un principio se decidió traducir las fórmulas generadas según el método expuesto en la sección anterior a Gecode \cite{Gecode}. Esta decisión se cambió posteriormente por la generación de código MiniZinc \cite{MiniZinc}, esto fue posible gracias al diseño independiente del lenguaje de restricciones que utilizamos.


Para traducir la representación abstracta de las restricciones a código de un lenguaje programación con restricciones o resolutor concreto hay que realizar las siguientes transformaciones:

\begin{itemize}
\item Declarar las variables simbólicas. Cada lenguaje de programación con restricciones tiene su forma de declarar sus variables y el dominio de las mismas. Para hacerlo utilizamos el tipo de cada variable simbólica utilizada y le asignamos un identificador único (formado por la tabla y el atributo al que pertenece y un índice) 

\item Expresar las restricciones. Los lenguajes de programación con restricciones difieren en la forma de expresar las restricciones. Es necesario transformar las expresiones sobre variables en sus equivalentes en el lenguaje específico. A demás, la herramienta debe traducir el conjunto de fórmulas de cada relación en una disyunción de las mismas.

\item Ejecutar el resolutor. Una vez definido el modelo del problema a través de los pasos anteriores, es necesario ejecutar el resolutor. La forma de ejecutarlo y las posibilidades de configuración varían entre los posibles lenguajes y resolutores.

\item Establecer formato de salida. Hay que proporcionar al usuario una salida significativa y completa. Para ello hay que especificar el formato de salida del resultado.
\end{itemize}